package com.ruoyi.cderp.mapper;

import java.util.List;

import com.ruoyi.cderp.domain.ProductionPickingItem;
import com.ruoyi.cderp.domain.ProductionReturn;
import com.ruoyi.cderp.domain.ProductionReturnItem;
import org.apache.ibatis.annotations.Param;

/**
 * 生产退料Mapper接口
 *
 * @author ruoyi
 * @date 2025-06-15
 */
public interface ProductionReturnMapper
{
    /**
     * 查询生产退料
     *
     * @param id 生产退料主键
     * @return 生产退料
     */
    public ProductionReturn selectProductionReturnById(String id);

    /**
     * 查询生产退料详情
     *
     * @param return_id 生产退料主键
     * @return 生产退料
     */
    public List<ProductionReturnItem> selectProductionReturnItemList(String return_id);

    /**
     * 查询生产退料列表
     *
     * @param productionReturn 生产退料
     * @return 生产退料集合
     */
    public List<ProductionReturn> selectProductionReturnList(ProductionReturn productionReturn);

    /**
     * 新增生产退料
     *
     * @param productionReturn 生产退料
     * @return 结果
     */
    public int insertProductionReturn(ProductionReturn productionReturn);

    /**
     * 修改生产退料
     *
     * @param productionReturn 生产退料
     * @return 结果
     */
    public int updateProductionReturn(ProductionReturn productionReturn);

    /**
     * 删除生产退料
     *
     * @param id 生产退料主键
     * @return 结果
     */
    public int deleteProductionReturnById(String id);

    /**
     * 批量删除生产退料
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProductionReturnByIds(String[] ids);

    /**
     * 批量删除生产退料明细
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProductionReturnItemByReturnIds(String[] ids);

    /**
     * 批量新增生产退料明细
     *
     * @param productionReturnItemList 生产退料明细列表
     * @return 结果
     */
    public int batchProductionReturnItem(List<ProductionReturnItem> productionReturnItemList);


    /**
     * 通过生产退料主键删除生产退料明细信息
     *
     * @param id 生产退料ID
     * @return 结果
     */
    public int deleteProductionReturnItemByReturnId(String id);

    /**
     * 查询生产退料明细
     *
     * @param id 生产退料主键
     * @return 生产退料
     */
    List<ProductionReturnItem> selectOrderReturnList(@Param("id") String id);
}
